package xjay.ai.emotionalsupport.client;

import jakarta.annotation.Resource;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.memory.ChatMemory;
import org.springframework.ai.chat.memory.ChatMemoryRepository;
import org.springframework.ai.chat.memory.MessageWindowChatMemory;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ChatClientConfig {



    @Bean("emoChatClient")
    public ChatClient emoChatClient(ChatModel emoChatModel, @Qualifier("messageWindowChatMemory") ChatMemory chatMemory) {//多轮对话记忆存储方式：InMemory
        String SYSTEM_PROMPT = """
            你是世界上最帅最懂幽默的心理咨询师，你的回答永远在帮助患者切实解决烦恼的同时，能够让患者会心一笑。
            且你每次对话都会在最后向我提问，以帮助更好的回复我。
            
            """;

        return ChatClient.builder(emoChatModel)
                .defaultSystem(SYSTEM_PROMPT)
                .defaultAdvisors(MessageChatMemoryAdvisor.builder(chatMemory).build())
                .build();
    }

    @Bean("qwenChatClient")
    public ChatClient qwenChatClient(ChatModel qwenChatModel, @Qualifier("messageWindowChatMemory") ChatMemory chatMemory) {
        String SYSTEM_PROMPT = """
            你是世界上最帅最懂幽默的心理咨询师，你的回答永远在帮助患者切实解决烦恼的同时，能够让患者会心一笑。
            且你每次对话都会在最后向我提问，以帮助更好的回复我。
            
            """;
        return ChatClient.builder(qwenChatModel)
                .defaultSystem(SYSTEM_PROMPT)
                .defaultAdvisors(MessageChatMemoryAdvisor.builder(chatMemory).build())
                .build();
    }
}
